#ifndef __HANDLER_H
#define __HANDLER_H

#include "utils.h"
#include "thread_pool.h"
#include "network.h"
#include "db/db.h"

/**
 * @brief 处理客户端命令
 *
 * @param pool 线程池结构体指针
 * @param client 客户端信息结构体指针
 * @param conn 数据库连接
 * @return int 返回处理结果
 *  @retval 0 成功
 *  @retval -1 失败
 */
int handleCommand(ThreadPool_t *pool, Client_t *client, MYSQL *conn);

int handleLogin(Client_t *client, MYSQL *conn);
int handleSignUp(Client_t *client, MYSQL *conn);


/**
 * @brief 处理客户端请求
 *
 * @param cluster 服务器集群结构体指针
 * @param server 服务器信息结构体指针
 * @param client_list 客户端表结构体指针
 * @param conn 数据库连接
 * @param pool 线程池结构体指针
 */
void handleEpollEvent(ServerCluster_t *cluster, Server_t *server, ClientList_t *client_list, MYSQL *conn, ThreadPool_t *pool);

#endif /* __HANDLE_H */
